public class test01 {
    class Solution {
        public int findLength(int[] nums1, int[] nums2) {
            int m = nums1.length;
            int n = nums2.length;
            int[][] dp = new int[m+1][n+1];
            int res = 0;

            //dp[i][j]含义：包含下标为i-1和j-1的最长重复子数组
            for(int i = 1;i<m+1;i++){
                for(int j = 1;j<n+1;j++){
                    if(nums1[i-1]==nums2[j-1]){
                        dp[i][j] = dp[i-1][j-1]+1;
                    }
                    res = Math.max(res,dp[i][j]);
                }

            }
            return res;
        }
    }
}
